The present invention is related to the invention described in the U.S. patent application of J. Bruno et al., entitled xe2x80x9cMethods and Apparatus for Ensuring Quality of Service in an Operating System,xe2x80x9d which is filed concurrently herewith and incorporated by reference herein.
The present invention relates generally to computer systems, and more particularly to techniques for providing a desired quality of service (QoS) for an application running in a computer system.
Conventional time-sharing operating systems cannot guarantee resource availability in the amount required by any given application. Examples of conventional time-sharing operating systems include Unix, as described in, e.g., M. McKusick et al., xe2x80x9cThe Design and Implementation of the 4.4 BSD Operating System,xe2x80x9d Addison Wesley Pub. Co., Reading, Mass., 1996, and Windows NT, as described in, e.g., H. Custer, xe2x80x9cInside Windows NT,xe2x80x9d Microsoft Press, 1993.
However, an increasing number of applications, e.g., multimedia, require sufficient resources, including central processing unit (CPU), memory, and disk and network bandwidth, in order to perform properly. Such applications may perform well, on conventional time-sharing operating systems in cases of overprovisioning, i.e., when the total amount of resources tends to be larger than a worst-case workload would demand. Overprovisioning is possible, e.g., on dedicated systems, in the absence of other load. On the other hand, conventional time-sharing operating systems cannot guarantee adequate performance of such applications, e.g., in the cases of server xe2x80x9chot spotsxe2x80x9d or network congestion.
For such applications to perform properly under arbitrary load, an operating system must provide quality of service (QoS) guarantees and admission control, i.e., the operating system should admit a request only if the system has set aside sufficient resources to guarantee that it will satisfy the request with the specified performance bounds. Many techniques for providing QoS guarantees have been developed recently, as described, e.g., in D. Stiliadis and A. Varma, xe2x80x9cFrame-Based Fair Queuing: A New Traffic Scheduling Algorithm for Packet-Switched Networks,xe2x80x9d Tech. Rep. UCSC-CRL-95-39, Univ. Calif. Santa Cruz, July 1995; J. Bennett and H. Zhang, xe2x80x9cWF2Q: Worst-Case Fair Weighted Fair Queueing,xe2x80x9d in Proceedings of INFOCOM""96, IEEE, March 1996, pp. 120-128; J. Bennett and H. Zhang, xe2x80x9cHierarchical Packet Fair Queueing Algorithms,xe2x80x9d in Proceedings of SIGCOMM""96, ACM, August 1996; P. Goyal, X. Gao and H. Vin, xe2x80x9cA Hierarchical CPU Scheduler for Multimedia Operating Systems,xe2x80x9d in Proceedings of OSDI""96, USENIX, October 1996, pp. 107-121; and I. Stoica, H. Abdel-Wahab, K. Jeffay, S. Baruah, J. Gehrke and C. G. Plaxton, xe2x80x9cA Proportional Share Resource Allocation Algorithm for Real-Time, Time-Shared Systems,xe2x80x9d in Proceedings of Real Time Systems Symp., IEEE, December 1996.
A major shortcoming of these and other QoS techniques is that they typically require legacy applications to be modified in order to benefit from the improved guarantees that can be provided by the QoS techniques. Legacy applications are those developed before a given QoS technique. Modifying legacy applications can be costly or impractical.
The present invention provides techniques for running legacy applications automatically with quality of service (QoS) guarantees that match required QoS performance levels. In accordance with the invention, files are provided with a new attribute, referred to herein as a QoS requirement, and a requirement broker is interposed between legacy applications and the operating system. The requirement broker may be in the form of a modified version of a library that is dynamically linked with applications at load time. The modified library intercepts certain system calls and automatically requests QoS guarantees in accordance with the QoS requirement attributes of the accessed files, whether local or remote.
Advantageously, the invention allows an operating system to run unmodified legacy applications automatically with QoS guarantees that provide the required performance.